#include "process.h"

const int base = 1; //控制数据波动的范围
double total/*全部的*/ = 20480.0; // 2048MB
double once = 0.1; // 0.1MB

typedef void (*p_fun)(double, double);

// 下载函数+进度条
void download(p_fun fun) // 函数指针可以做到传入不同的进度条函数打印不同的进度条
{
    double current/*当前的*/ = 0.0;
    while (current < total)
    {
       // 模拟下载行为
       int r = rand() % base + 1; // 产生1~base的随机数
       double speed/*速度*/ = r * once; // 模拟下载速度的波动
       current += speed;
       if(current > total) current = total;
       usleep(10000); // 10毫秒

       //调用打印进度条的函数
       fun(current, total);
    }
    printf("\n");
}

int main()
{
    srand((unsigned int)time(NULL));
    //Process();
    download(FlushProcess);
    return 0;
}
